开始之前:
1. 识别路口输出数据
在巡线功能下,HUSKYLENS 2可以标记出画面中路线的轨迹,获取当前路线的长度、角度和X、Y分量。当路线出现分支时,可以获取路口的分支数量和逆时针方向起每条分支的相应数据。
示例程序如下。
# -*- coding: UTF-8 -*-
# MindPlus
# Python
from unihiker import GUI
from pinpong.board import Board
from dfrobot_huskylensv2 import *
u_gui=GUI()
Board().begin()
huskylens = HuskylensV2_I2C()
huskylens.knock()
huskylens.switchAlgorithm(ALGORITHM_LINE_TRACKING)
line1=u_gui.draw_text(text="",x=0,y=0,font_size=18, color="#0000FF")
line2=u_gui.draw_text(text="",x=0,y=40,font_size=18, color="#0000FF")
line3=u_gui.draw_text(text="",x=0,y=80,font_size=18, color="#0000FF")
line4=u_gui.draw_text(text="",x=0,y=105,font_size=18, color="#0000FF")
line5=u_gui.draw_text(text="",x=0,y=145,font_size=18, color="#0000FF")
line6=u_gui.draw_text(text="",x=0,y=185,font_size=18, color="#0000FF")
line7=u_gui.draw_text(text="",x=0,y=210,font_size=18, color="#0000FF")
while True:
huskylens.getResult(ALGORITHM_LINE_TRACKING)
if (huskylens.available(ALGORITHM_LINE_TRACKING)):
line1.config(text=(str("路线的角度为:") + str((huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING,'angle')))))
line2.config(text=(str("路线的长度为:") + str((huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING,'length')))))
line3.config(text="路线的X和Y分量为:")
line4.config(text=(str((huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING,'xTarget'))) + str((str(",") + str((huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING,'yTarget')))))))
line5.config(text=(str("路口分支数量为:") + str((huskylens.getUpcomingBranchCount(ALGORITHM_LINE_TRACKING)))))
line6.config(text="逆时针第1条分支路线")
line7.config(text=(str("的X分量:") + str((huskylens.getBranch(ALGORITHM_LINE_TRACKING, 1-1,'xTarget')))))
**运行结果:**如图所示,将HUSKYLENS 2的镜头对准带有路线的地图,观察行空板M10屏幕输出的当前路线长度、角度等数据。当路线由多个分支时,可以输出分支数量、逆时针方向指定路线的X分量数据。